package cc.zy.base.hr.service;


import cc.zy.base.hr.entity.HrDept;
import cc.zy.base.common.entity.QueryRequest;
import cc.zy.base.hr.entity.HrDeptTree;
import cc.zy.base.system.entity.Dept;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;

/**
 * @author cheng
 * @time 2022/03/08 20:21:14
 */
public interface IHrDeptService extends IService<HrDept> {

    /**
     * 查询（分页）
     * @param request QueryRequest
     * @param hrDept hrDept
     * @return IPage<Dept>
     */
    IPage<HrDept> findHrDepts(QueryRequest request, HrDept hrDept);

    /**
     * 增加
     * @param hrDept hrDept
     */
    void savedept(HrDept hrDept);

    /**
     * 判断部门是否存在
     * @param hrDept hrDept
     * @return
     */
    boolean hrDeptExist(HrDept hrDept);

    /**
     * 修改
     * @param hrDept
     */
    void updateHrDeptById(HrDept hrDept);

    /**
     * 用WXID查找真实姓名
     * @param userId
     * @return
     */
    String getNameByWxUserId(String userId);

    /**
     * 通过详情
     * @param constant
     * @return
     */
    Integer getConstantId(String constant);

    /**
     * 删除
     * @param hrDept
     */
    void deleteByName(String hrDept);

    /**
     * 获取当前所有部门
     * @return
     */
    List<HrDept> getAllHrDept();

    /**
     * 获取最后更新时间
     * @return
     */
    Date getHrDeptUpdateDate();


    /**
     * 下拉框获取值
     * @return
     */
    List<HrDept> findAll();

    /**
     * @author zhangyihao
     * 根据草稿表拼接接的个部门名称字符串 来找对应的id列表
     */
    List<HrDept> findDeptsByNames(String[] deptNames);


    /**
     * 获取部门树（下拉选使用）
     *
     * @return 部门树集合
     */
    List<HrDeptTree<HrDept>> findDept();

}
